User based electronic program guides

ABSTRACT

Electronic program guides are generated using device information, content authorization, service levels, and/or interest levels, etc., for a particular user. A viewer can access a user specific electronic program guide on a mobile device, continue accessing the user specific electronic program guide on a computer system, and subsequently move to a large screen television the same electronic program guide. The same user specific electronic program guide may be provided or adjustments to the electronic program guide can be made to account for varying service levels and device capabilities of the different devices. A user may be authorized to view a particular channel on a mobile device but not on a large screen television. In particular examples, a user can seamlessly access a user specific electronic program guide across a variety of authenticated devices associated with a variety of service levels.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 13/223,157 (MOBIP056), titled “USER BASEDELECTRONIC PROGRAM GUIDES” by Kay Johansson, filed Aug. 31, 2011, whichclaims the benefit of priority under 35 U.S.C. §119(e) to U.S.Provisional Application No. 61/379,512 (MOBIP056P), titled “USER BASEDELECTRONIC PROGRAM GUIDES” by Kay Johansson, filed Sep. 2, 2010, theentirety of which is incorporated in its entirety by this reference forall purposes.

TECHNICAL FIELD

The present disclosure relates to user based electronic program guides.

DESCRIPTION OF RELATED ART

Electronic program guides typically are device or region specific. A settop box may display an electronic program guide for a particular set ofchannels that the set top box is authorized to receive. Differentviewers using the same set top box will all see the same electronicprogram guide. In some examples, a user may enter a name and password toget access to program listings for a set of channels the user hasselected.

However, mechanisms for providing user based electronic program guidesare limited. Consequently, it is desirable to provide improvedmechanisms for providing user based electronic program guides.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure may best be understood by reference to the followingdescription taken in conjunction with the accompanying drawings, whichillustrate particular embodiments.

FIG. 1 illustrates one example of a media delivery system.

FIG. 2 illustrates another example of a media content delivery server.

FIG. 3 illustrates a particular example of a program guide.

FIG. 4 illustrates another example of a program guide.

FIG. 5 illustrates a particular example of a guide request sequence.

FIG. 6 illustrates one technique for generating user specific electronicprogram guides.

FIG. 7 illustrates one example of a system for implementing variousembodiments.

FIG. 8 illustrates one example of a server.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Reference will now be made in detail to some specific examples of theinvention including the best modes contemplated by the inventors forcarrying out the invention. Examples of these specific embodiments areillustrated in the accompanying drawings. While the invention isdescribed in conjunction with these specific embodiments, it will beunderstood that it is not intended to limit the invention to thedescribed embodiments. On the contrary, it is intended to coveralternatives, modifications, and equivalents as may be included withinthe spirit and scope of the invention as defined by the appended claims.

For example, the techniques of the present invention will be describedin the context of a particular type of electronic program guide.However, it should be noted that the techniques of the present inventionapply to a wide variety of electronic program guides. In the followingdescription, numerous specific details are set forth in order to providea thorough understanding of the present invention. Particular exampleembodiments of the present invention may be implemented without some orall of these specific details. In other instances, well known processoperations have not been described in detail in order not tounnecessarily obscure the present invention.

Various techniques and mechanisms of the present invention willsometimes be described in singular form for clarity. However, it shouldbe noted that some embodiments include multiple iterations of atechnique or multiple instantiations of a mechanism unless notedotherwise. For example, a system uses a processor in a variety ofcontexts. However, it will be appreciated that a system can use multipleprocessors while remaining within the scope of the present inventionunless otherwise noted. Furthermore, the techniques and mechanisms ofthe present invention will sometimes describe a connection between twoentities. It should be noted that a connection between two entities doesnot necessarily mean a direct, unimpeded connection, as a variety ofother entities may reside between the two entities. For example, aprocessor may be connected to memory, but it will be appreciated that avariety of bridges and controllers may reside between the processor andmemory. Consequently, a connection does not necessarily mean a direct,unimpeded connection unless otherwise noted.

Overview

Electronic program guides are generated using device information,content authorization, service levels, and/or interest levels, etc., fora particular user. A viewer can access a user specific electronicprogram guide on a mobile device, continue accessing the user specificelectronic program guide on a computer system, and subsequently move toa large screen television the same electronic program guide. The sameuser specific electronic program guide may be provided or adjustments tothe electronic program guide can be made to account for varying servicelevels and device capabilities of the different devices. A user may beauthorized to view a particular channel on a mobile device but not on alarge screen television. In particular examples, a user can seamlesslyaccess a user specific electronic program guide across a variety ofauthenticated devices associated with a variety of service levels.

Example Embodiments

Electronic program guides for television or video services are typicallydevice or region specific. A set top box is configured to display anelectronic program guide that includes a particular package of channels.A cable television may receive an electronic program guide for aprogramming package that is specific to a particular region. However, itis recognized that electronic program guides can be more effectivelycustomized for particular users, devices, regions, and/or subscriptionlevels, etc. According to various embodiments, user specific electronicprogram guides are generated based on user data, service levels,regions, authorized devices, etc. In some examples, a user specificelectronic program guide is generated for a particular mobile devicechannel package and user interest levels. The user may have a slightlydifferent subscription level on a set top box, and may be able to accessthree dimensional high definition channels as well as standarddefinition channels on a set top box.

In particular embodiments, an electronic program guide is tailored tothe specific user and adjusted based on device and service levelsassociated with the device. A user accessing a user specific electronicprogram guide a single user mobile device may want to seamlesslycontinue to have access to the user specific electronic program guide ona multiple user large screen television that may or may not reside inthe same geographic region. Conventional electronic program guidemanagement mechanisms do not efficiently handle user specific electronicprogram guide generation across devices, regions, and service levels.

According to various embodiments, user authorizations, deviceauthorizations, service levels, regions, interests, group interests,etc., may also be considered to provide a user with a user, location,and device specific electronic program guide. In particular embodiments,a user is authorized on multiple devices or multiple devices may beregistered so that little or no user interaction is required. On amultiple user device such as a set top box, a user can log in for everysession or for as along as the device is operating. A particular pin orpassword may be used on a set top box for the user to access apersonalized electronic program guide.

In particular embodiments, electronic program guide content is managedso that there is an identification of what the user is authorized toview on what devices at what quality levels and when. In some examples,an electronic program guide may include an entire high definitionchannel package on a mobile device but only particular high definitionchannels on a computer system. In other examples, an electronic programguide may show a particular program on a personalized device such as amobile phone or a computer but not on a multiple user device such as aset top box. In still other examples, an electronic program guide mayshow a program on a mobile device using WiFi but not when the mobiledevice is connecting using a broadband network.

According to various embodiments, a user electronic program guide mayshow all content across all devices but only when the user is in thevicinity of the device based on mobile device location data. Inparticular embodiments, a user is determined to be in the vicinity of adevice using cell tower triangulation, global positioning system data,face recognition, proximity detection, username password entry, devicedetection, mobile device transmissions, etc.

In particular examples, an electronic program guide on a deviceindicates what programming may be held under black out restrictions whenthe device is located in a particular area but is adjusted to removeblack out restriction when the device moves to another region or theuser submits additional payment.

A variety of mechanisms are used to deliver media streams and associatedelectronic program guides to devices. In particular examples, a clientestablishes a session such as a Real-Time Streaming Protocol (RTSP)session. A server computer receives a connection for a media stream,establishes a session, and provides a media stream to a client device.The media stream includes packets encapsulating frames such as MPEG-4frames. The MPEG-4 frames themselves may be key frames or differentialframes. The specific encapsulation methodology used by the serverdepends on the type of content, the format of that content, the formatof the payload, and the application and transmission protocols beingused to send the data. After the client device receives the mediastream, the client device decapsulates the packets to obtain the MPEGframes and decodes the MPEG frames to obtain the actual media data.

Conventional MPEG-4 files require that a player parse the entire headerbefore any of the data can be decoded. Parsing the entire header cantake a notable amount of time, particularly on devices with limitednetwork and processing resources. Consequently, the techniques andmechanisms of the present invention provide a fragmented MPEG-4framework that allows playback upon receiving a first MPEG-4 filefragment. A second MPEG-4 file fragment can be requested usinginformation included in the first MPEG-4 file fragment. According tovarious embodiments, the second MPEG-4 file fragment requested may be afragment corresponding to a higher or lower bit-rate stream than thestream associated with the first file fragment.

MPEG-4 is an extensible container format that does not have a fixedstructure for describing media types. Instead, MPEG-4 has an objecthierarchy that allows custom structures to be defined for each format.The format description is stored in the sample description (‘stsd’) boxfor each stream. The sample description box may include information thatmay not be known until all data has been encoded. For example, thesample description box may include an average bit rate that is not knownprior to encoding.

According to various embodiments, MPEG-4 files are fragmented so that alive stream can be recorded and played back in a close to live manner.MPEG-4 files can be created without having to wait until all content iswritten to prepare the movie headers. To allow for MPEG-4 fragmentationwithout out of band signaling, a box structure is provided to includesynchronization information, end of file information, and chapterinformation. According to various embodiments, synchronizationinformation is used to synchronize audio and video when playback entailsstarting in the middle of a stream. End of file information signals whenthe current program or file is over. This may include information tocontinue streaming the next program or file. Chapter information may beused for video on demand content that is broken up into chapters,possibly separated by advertisement slots.

TCP is more widely used than UDP and networking technologies includingswitch, load balancer, and network card technologies are more developedfor TCP than for UDP. Consequently, techniques and mechanisms areprovided for delivering fragmented live media over TCP. Sequenceinformation is also maintained and/or modified to allow seamless clientdevice operation. Timing and sequence information in a media stream ispreserved.

Requests are exposed as separate files to clients and files shouldplayback on players that handle fragmented MPEG-4. Live or near live,video on demand (VOD), and digital video record (DVR) content can all behandled using fragmentation.

According to various embodiments, playback stoppage is detected at acontent server or fragmentation server. In some examples, a device sendsa playback stoppage request. In other examples, a content server detectsthat a subsequent fragment request has not been received. The contentserver maintains user information and media stream position information.In some examples, the content server also maintains device informationand quality or bit rate data. When a request for a fragment or a resumerequest is received from the same device, or from a different deviceassociated with the same user, the content server identifies bit rateand the media stream along with the appropriate fragment to send to theuser. The fragment may correspond to media data transmitted in the pastas a live feed and may no longer be live, but the user is able tocontinue viewing the media stream in a seamless manner at a resolutionappropriate for a current viewing device.

The request from the device may include a bit rate and resolution, or acontent server may identify an appropriate bit rate and resolution usingdevice information. A resume request along with a desired bit rate mayalso be received from a different device associated with a user.Fragments maintained at a content server may be used to respond torequests from numerous users on a variety of devices requesting playbackof media streams at different points in time and at different qualitylevels. According to various embodiments, fragments can be maintainedonce at different quality levels and cached efficiently even though avariety of disparate requests for the same or different media streamswill be received.

FIG. 1 is a diagrammatic representation illustrating one example of afragmentation system 101 associated with a content server that can usethe techniques and mechanisms of the present invention. Encoders 105receive media data from satellite, content libraries, and other contentsources and sends RTP multicast data to fragment writer 109. Theencoders 105 also send session announcement protocol (SAP) announcementsto SAP listener 121. According to various embodiments, the fragmentwriter 109 creates fragments for live streaming, and writes files todisk for recording. The fragment writer 109 receives RTP multicaststreams from the encoders 105 and parses the streams to repackage theaudio/video data as part of fragmented MPEG-4 files. When a new programstarts, the fragment writer 109 creates a new MPEG-4 file on fragmentstorage and appends fragments. In particular embodiments, the fragmentwriter 109 supports live and/or DVR configurations.

The fragment server 111 provides the caching layer with fragments forclients. The design philosophy behind the client/server API minimizesround trips and reduces complexity as much as possible when it comes todelivery of the media data to the client 115. The fragment server 111provides live streams and/or DVR configurations.

The fragment controller 107 is connected to application servers 103 andcontrols the fragmentation of live channel streams. The fragmentationcontroller 107 optionally integrates guide data to drive the recordingsfor a global/network DVR. In particular embodiments, the fragmentcontroller 107 embeds logic around the recording to simplify thefragment writer 109 component. According to various embodiments, thefragment controller 107 will run on the same host as the fragment writer109. In particular embodiments, the fragment controller 107 instantiatesinstances of the fragment writer 109 and manages high availability.

According to various embodiments, the client 115 uses a media componentthat requests fragmented MPEG-4 files, allows trick-play, and managesbandwidth adaptation. The client communicates with the applicationservices associated with HTTP proxy 113 to get guides and present theuser with the recorded content available.

FIG. 2 is a diagrammatic representation showing one example of a mediacontent delivery server 291. According to various embodiments, the mediacontent delivery server 291 includes a processor 201, memory 203, and anumber of interfaces. In some examples, the interfaces include a guidegenerator interface 241 allowing the media content delivery server 291to obtain program guide information. The media content delivery server291 also can include a program guide cache 231 configured to storeprogram guide information and data associated with various channels.According to various embodiments, the guide generator interface 241 isconfigured to use information such as user interests, service levels,subscription levels, regional information, device data, etc., tocustomize an electronic program guide to a particular user, device,region, etc.

The media content delivery server 291 can also maintain staticinformation such as icons and menu pages. The interfaces also include acarrier interface 211 allowing operation with mobile devices such ascellular phones operating in a particular cellular network. The carrierinterface allows a carrier vending system to update subscriptions.Carrier interfaces 213 and 215 allow operation with mobile devicesoperating in other wireless networks. An abstract buy engine interface243 provides communication with an abstract buy engine that maintainssubscription information.

An authentication module 221 verifies the identity of mobile devices. Alogging and report generation module 253 tracks mobile device requestsand associated responses. A monitor system 251 allows an administratorto view usage patterns and system availability. According to variousembodiments, the media content delivery server 291 handles requests andresponses for media content related transactions while a separatestreaming server provides the actual media streams. In some instances, amedia content delivery server 291 may also have access to a streamingserver or operate as a proxy for a streaming server. But in otherinstances, a media content delivery server 291 does not need to have anyinterface to a streaming server. In typical instances, however, themedia content delivery server 291 also provides some media streams. Themedia content delivery server 291 can also be configured to providemedia clips and files to a user in a manner that supplements a streamingserver.

Although a particular media content delivery server 291 is described, itshould be recognized that a variety of alternative configurations arepossible. For example, some modules such as a report and logging module253 and a monitor 251 may not be needed on every server. Alternatively,the modules may be implemented on another device connected to theserver. In another example, the server 291 may not include an interfaceto an abstract buy engine and may in fact include the abstract buyengine itself. A variety of configurations are possible.

FIG. 3 is an exchange diagram depicting one example of program guidestructure information. In some examples, the times 311, 313, and 315 ondate 301 cover a time range from time 311 through time 315, such as 3 pmto 5 pm. The program guide structure information provides informationidentifying channels 321, 323, 325, 327, 329, and 331. In some examples,program guide structure information includes a table of hundreds ofchannels. According to various embodiments, the program guide is orderedbased on real-time determined popularity of programs. That is, theprogram guide is ordered based on the number of users watching aparticular program at that particular time. A program guide can becreated by a guide generator from information provided by a variety ofcontent providers and compiled from a number of different users. Theprogram guide structure information may include a listing of channelsand not program guide content information for hundreds or thousands ofchannels.

Available systems download program guide information for all availablechannels or substantially all subscribed channels. In many instances, anentire program guide is downloaded. Downloading an entire program guidecan take an unreasonably long period time, use considerable bandwidth,and consume resources on a device. For mobile devices with mediacapabilities operating in wireless networks, it is contemplated that itis beneficial to download program guide structure to allow a user tobegin navigating while downloading program guide content dynamicallybased on demand from a user. In some examples, program guide content isdownloaded in blocks with the most popular content downloaded first.

The program guide content block size may be determined based on the sizeof available mobile device memory. In another alternative, a programguide information block size is based upon data transmission rates,server cache block sizes, or available bandwidth. A wide variety ofcriteria and combinations of criteria can be used in determining aprogram guide information block size. In other examples, just enoughdata is downloaded to display a list and allow a user to begin tonavigate the program guide information. As the user views differentparts of the guide, the detailed content of the guide is downloadedseparately and displayed as needed. There is no need to download theentire guide. Only what the user needs to view is downloaded on demand.Potentially limitless guide data can be downloaded in this manner. Theuser gets immediate feedback and does not need to wait for the data. Theguide is not limited to the memory storage on the device or the servicebandwidth. Guide data can be constantly updated since only the visibleportion needs to be downloaded.

FIG. 4 depicts program guide structure information and program guidecontent information. Although a particular mechanism for downloadingprogram guides is shown, it should be noted that program guides can beprovided in a variety of manners. On many devices, electronic programguides may be provided in their entirety. In one example, program guidestructure such as a listing of channels or at least a partial listing ofchannels is initially downloaded to allow a user to begin navigating.The block of program guide content information is associated with date401 and times 411, 413, and 415. In another example, the times 411, 413,and 415 cover a time range from time 411 through time 415, such as 3 pmto 5 pm. Programs 441, 443, 445, 447, 451, 453, 455, and 457 areincluded in the program guide information block. The program guideinformation block shows program guide information for channels 421, 423,425, 427, 429, and 481 and corresponding icons 431, 433, 435, and 471.In some examples, a program guide includes information for thousands ofchannels and video clips. A program guide can be created by a guidegenerator from information provided by a variety of content providersand from viewership information. Program guide structure information canbe unique to each user. According to various embodiments, program guidecontent information is maintained in relatively generic form and can becached on a server.

In some examples program guide content information only providesinformation for channels 421, 423, 425, and 427 and not for hundreds orthousands of other channels. The channels 421, 423, 524, and 427 maycorrespond to channels corresponding to a particular user's subscriptionand service levels for a particular device. A mobile device screen mayonly be sufficient to display a portion of the program guide informationblock. For example, the mobile device screen may only show informationfor channels 421, 423, and 425. Nonetheless, some extra information maybe downloaded in anticipation of a user requesting that information.Although the channels shown are contiguous, it should be noted thatchannels and times as well do not have to be contiguous.

In some examples, a media content delivery server can remember channelsor groups of channels frequently accessed by a user and provide thechannels or groups of channels as part of a block of program guideinformation. In another example, a media content delivery server canrecognize that a user typically views about a dozen or so popularchannels and provide several pages of scroll down program guideinformation to a user preemptively even before the user performs anyscrolling. In still other examples, a media content delivery server canrecognize user viewing or listening patterns and download blocks ofprogram guide content information believed to be of interest to a user.Similarly, a media content delivery server can determine times whenmedia is frequently accessed and provide blocks of program guideinformation based on viewing times. A wide variety of algorithms can beimplemented to intelligently select portions of program guide contentinformation for download to a mobile device without having to downloadthe entire program guide. Resources can be conserved while stillproviding the user with an active and dynamic experience.

FIG. 5 is an exchange diagram showing one example of a mobile guidedelivery sequence. A mobile device 501 obtains subscription servicerights information from a carrier server 503. In particular embodiments,subscription rights are obtained for all user registered devices.According to various embodiments, the mobile device parses and displaysinformation associated with the rights at 523. In one example, a rootmenu showing subscribed and available channels is shown for a particulardevice.

According to various embodiments, the mobile device 501 sends an updatesubscriptions request message at 531 to a media content delivery server505. The media content delivery server 505 forwards the updatesubscriptions request message to an abstract buy engine 509. Theabstract buy engine 509 sends an update subscriptions message to thedatabase 511. The mobile device 501 also sends a lineup request message533 to the media content delivery server 505. The lineup request messageis forwarded to a guide generator 507. The guide generator obtains alineup for the mobile device from the database 511. The abstract buyengine 509 is not involved in this particular request transaction. At535, the mobile device sends a guide part request to the media contentdelivery server 505. In some examples, the request is a request for theentire program guide. In typical examples, the request is a request fora portion of the guide or a program guide information block. The programguide information block request is forwarded to a guide generator 507.The guide generator obtains the guide part from a database 511 orgenerates it based on other information.

In some examples, icons are also requested by the mobile device 501 at537. The mobile device 501 sends an icon request to the media contentdelivery server 505. The media content delivery server 505 forwards theicon request to the guide generator 507. The guide generator obtainsicons from the database 511. According to various embodiments, otherinformation such as advertisements and media clips are also requested orprovided along with the icons. At 541, the guide is assembled at themobile device 501. According to various embodiments, the most popularreal-time content is shown and display first. The user can then scrollthrough the guide or jump to a particular location in the guide. Someportions of the guide may not yet be downloaded. Consequently,additional guide part requests and icon requests may be sent by a mobiledevice 501 at 545 and 547. The additional program guide informationblock requests and icon requests at 545 and 547 may be sent fordifferent channels, different channel blocks, or different time periods.

FIG. 6 is a flow process diagram showing one example of a technique forgenerating a user specific electronic program guide. At 601, a guidegenerator obtains program guide information from various sources such ascontent providers. The program guide information gives programdescriptions, titles, ratings, as well as time and data information. At603, the guide generator also obtains information about the user,devices, subscription, service levels, interests, etc., about the user.For example, the guide generator may determine that the user has anunlimited content subscription on a set top box, a time limited contentsubscription on a computer system, an exclusive content package on amobile device, etc. Electronic program guides specific to the user, userdevices, time, region, etc., are generated and automatically provided toa user registered device. At 605, the guide generator compiles anelectronic program guide. According to various embodiments, userspecific guides may be compiled constantly and broadcast to cacheswhenever significant change is noted.

At 607, the electronic program guide is transmitted to caches associatedwith the guide generator to allow rapid retrieval of content. Accordingto various embodiments, the program guide can be continuously updatedand reordered based on viewership information. In particularembodiments, a simple numerical ranking is sent as updates to individualusers. The rankings allow individual client devices to order channelsand video clips in an order desired. In still other embodiments, only asubset of the most popular programs are ranked. Other video content canstill be provided in channel based numerical order. For example, thereal-time most popular video content can be provided as a first page ofa program guide. The entire program guide can be provided below are mostwatched section.

According to particular embodiments, the electronic program guide isprovided to client devices and displayed in order of real-timepopularity. Real-time most watched electronic program guide content canbe provided before least watched electronic program guide content.

FIG. 7 is a flow process diagram showing one example of a request forprogram guide information. At 701, a request for program guideinformation is received from a user. The request may result from a userselection to view a certain portion of a program guide. According tovarious embodiments, some program guide information may already beavailable on the device. For example, a listing of channels may beavailable. At 703, any program guide information available is displayed.At 705, a client device requests a block of program guide informationfrom a media content delivery server. The block of program guideinformation may have a size determined by the screen of a client device.Alternatively, the block of program guide information may have a sizedetermined by the amount of memory available on the client device. Otherconsiderations such as bandwidth availability can also be taken intoaccount. According to particular embodiments, the real-time most popularvideo content is provided in a first block. At 707, a client devicereceives a subsequent request from a user for program guide information.

According to various embodiments, the subsequent request results from auser scrolling, jumping, or otherwise navigating to a particular portionof a program guide. If the client device does not already have theinformation, the block of program guide information is requested from amedia content delivery server at 709. It should be noted that programguide information can also be requested from other entities related tomedia content delivery servers. At 711, blocks of program guideinformation can be preemptively requested. Alternatively, blocks ofprogram guide information can be preemptively provided to a clientdevice. A variety of client devices can be used. According to variousembodiments, a client device includes a display, a processor, memory, aninterface operable to communicate with a media content delivery server,and an input interface operable to allow a user to operate the device.Possible client devices include cellular phones, personal digitalassistants, portable computing devices, etc.

FIG. 8 illustrates one example of a server. According to particularembodiments, a system 800 suitable for implementing particularembodiments of the present invention includes a processor 801, a memory803, an interface 811, and a bus 815 (e.g., a PCI bus or otherinterconnection fabric) and operates as a streaming server. When actingunder the control of appropriate software or firmware, the processor 801is responsible for modifying and transmitting live media data to aclient. Various specially configured devices can also be used in placeof a processor 801 or in addition to processor 801. The interface 811 istypically configured to send and receive data packets or data segmentsover a network.

Particular examples of interfaces supports include Ethernet interfaces,frame relay interfaces, cable interfaces, DSL interfaces, token ringinterfaces, and the like. In addition, various very high-speedinterfaces may be provided such as fast Ethernet interfaces, GigabitEthernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces,FDDI interfaces and the like. Generally, these interfaces may includeports appropriate for communication with the appropriate media. In somecases, they may also include an independent processor and, in someinstances, volatile RAM. The independent processors may control suchcommunications intensive tasks as packet switching, media control andmanagement.

According to various embodiments, the system 800 is a fragment serverthat also includes a transceiver, streaming buffers, and a program guidedatabase. The fragment server may also be associated with subscriptionmanagement, logging and report generation, and monitoring capabilities.In particular embodiments, functionality for allowing operation withmobile devices such as cellular phones operating in a particularcellular network and providing subscription management. According tovarious embodiments, an authentication module verifies the identity ofdevices including mobile devices. A logging and report generation moduletracks mobile device requests and associated responses. A monitor systemallows an administrator to view usage patterns and system availability.According to various embodiments, the fragment server 891 handlesrequests and responses for media content related transactions while aseparate streaming server provides the actual media streams.

Although a particular fragment server 891 is described, it should berecognized that a variety of alternative configurations are possible.For example, some modules such as a report and logging module 853 and amonitor 851 may not be needed on every server. Alternatively, themodules may be implemented on another device connected to the server. Inanother example, the server 891 may not include an interface to anabstract buy engine and may in fact include the abstract buy engineitself. A variety of configurations are possible.

While the invention has been particularly shown and described withreference to specific embodiments thereof, it will be understood bythose skilled in the art that changes in the form and details of thedisclosed embodiments may be made without departing from the spirit orscope of the invention. It is therefore intended that the invention beinterpreted to include all variations and equivalents that fall withinthe true spirit and scope of the present invention.

Because such information and program instructions may be employed toimplement the systems/methods described herein, the present inventionrelates to tangible, machine readable media that include programinstructions, state information, etc. for performing various operationsdescribed herein. Examples of machine-readable media include hard disks,floppy disks, magnetic tape, optical media such as CD-ROM disks andDVDs; magneto-optical media such as optical disks, and hardware devicesthat are specially configured to store and perform program instructions,such as read-only memory devices (ROM) and programmable read-only memorydevices (PROMs). Examples of program instructions include both machinecode, such as produced by a compiler, and files containing higher levelcode that may be executed by the computer using an interpreter.

Although many of the components and processes are described above in thesingular for convenience, it will be appreciated by one of skill in theart that multiple components and repeated processes can also be used topractice the techniques of the present invention.

While the invention has been particularly shown and described withreference to specific embodiments thereof, it will be understood bythose skilled in the art that changes in the form and details of thedisclosed embodiments may be made without departing from the spirit orscope of the invention. It is therefore intended that the invention beinterpreted to include all variations and equivalents that fall withinthe true spirit and scope of the present invention.

1-20. (canceled)
 21. A system, comprising: a processor configured to identify a user and a first mobile computing device and a second computing device associated with the user, wherein the processor is configured to determine a first content level corresponding to a first set of content channels and a first service level for media the user is authorized to receive on the first mobile computing device and a second content level corresponding to a second set of content channels and a second service level for media the user is authorized to receive on the second computing device; an interface configured to detect that the user has transitioned to a second computing device; a guide generator configured to create a first electronic program guide using the first content level and the first service level and a second electronic program guide using the second content level and the second service level, wherein the first electronic program guide and the second electronic program guide are different; and a communication detection system configured to determine whether the second computing device is in communication with the first mobile computing device, wherein the first electronic program guide or the second electronic program guide is presented based on the presence of communication between the first mobile computing device and the second computing device.
 22. The system of claim 21, wherein the first service level corresponds to a first media stream resolution.
 23. The system of claim 22, wherein the second service level corresponds to a second media stream resolution different from the first media stream resolution.
 24. The system of claim 21, wherein the first electronic program guide is customized based on the first content level, the first service level, and user preferences.
 25. The system of claim 24, wherein the second electronic program guide is customized based on the second content level, the second service level, and user preferences.
 26. The system of claim 21, wherein the second computing device is a set top box.
 27. The system of claim 21, wherein the second set of content channels includes all content channels across all devices that the user is authorized to access.
 28. A method, comprising: identifying a user and a first mobile computing device associated with the user; determining a first content level corresponding to a first set of content channels and a first service level for media the user is authorized to receive on the first mobile computing device, wherein the first mobile computing device is a mobile device; generating a first electronic program guide using the first content level and the first service level; determining, via a communication detection system, whether the second computing device is in communication with the first mobile computing device, wherein the first electronic program guide or the second electronic program guide is presented based on the presence of communication between the first mobile computing device and the second computing device; determining a second content level corresponding to a second set of content channels and a second service level for media the user is authorized to receive on the second computing device; generating a second electronic program guide using the second content level and the second service level, wherein the second electronic program guide is different from the first electronic program guide.
 29. The method of claim 28, wherein the first service level corresponds to a first media stream resolution.
 30. The method of claim 29, wherein the second service level corresponds to a second media stream resolution different from the first media stream resolution.
 31. The method of claim 28, wherein the first electronic program guide is customized based on the first content level, the first service level, and user preferences.
 32. The method of claim 31, wherein the second electronic program guide is customized based on the second content level, the second service level, and user preferences.
 33. The method of claim 28, wherein a transition to a third device is detected.
 34. The method of claim 33, wherein the third device is a computer system.
 35. The method of claim 34, wherein a third content level and a third service level for media the user is authorized to receive on the third device is determined.
 36. The method of claim 35, wherein a third electronic program guide is generated using the third content level and the third service level, wherein the third electronic program guide is different from both the first electronic program guide and the second electronic program guide.
 37. The method of claim 28, wherein the second computing device is a set top box.
 38. The method of claim 28, wherein the second set of content channels includes all content channels across all devices that the user is authorized to access.
 39. An apparatus, comprising: means for identifying a user and a first mobile computing device associated with the user; means for determining a first content level corresponding to a first set of content channels and a first service level for media the user is authorized to receive on the first mobile computing device, wherein the first mobile computing device is a mobile device; means for generating a first electronic program guide using the first content level and the first service level; means for detecting that the user has transitioned to a second computing device; means for determining a second content level corresponding to a second set of content channels and a second service level for media the user is authorized to receive on the second computing device; means for generating a second electronic program guide using the second content level and the second service level, wherein the second electronic program guide is different from the first electronic program guide; and means for determining whether the second computing device is in communication with with the first mobile computing device, wherein the first electronic program guide or the second electronic program guide is presented based on the presence of communication between the first mobile computing device and the second computing device.
 40. The apparatus of claim 39, wherein the first service level corresponds to a first media stream resolution. 